Un poco de historia
Siguiendo con mis aventuras y desventuras con Backbone.js, al final me he lanzado a hacer lo más parecido que se me ocurre a un tutorial sin tener los conocimientos necesarios para hacer un tutorial: comentar el código de otros.En la entrada Mis desventuras con Backbone.js comentaba los problemas he que tenido con el tutorial de NetTuts+ y mi cambio de estrategia hacia la revisión del código de una aplicación de referencia como Localtodos.com.
Sin embargo, en mi intento anterior no sólo intentaba entender qué hacía --y cómo-- la aplicación: también intentaba castellanizar los nombres de las propiedades.
Un cambio de rumbo
Al final he decidido cambiar ligeramente de estrategia: seguiré revisando el código, pero sin realizar cambios sobre el mismo. El objetivo: intentar desentrañar cómo se ha construido la aplicación leyendo el código, la documentación de Backbone.js, los comentarios, etc... Espero aprender cómo funciona Backbone.js entendiendo cómo se hacen las cosas, no a base de repetir cómo las han hecho otros, especialmente cuando no comparten qué motivos les han impulsado a realizadas de ese modo particular.El propio autor de Backbone.js comenta en su F.A.Q: "There's More Than One Way To Do It" (Hay más de una manera de hacerlo)
It's common for folks just getting started to treat the examples listed on this page as some sort of gospel truth. In fact, Backbone.js is intended to be fairly agnostic about many common patterns in client-side code.
Es común para aquellos que empiezan tratar los ejemplos listados en esta página como una especia de verdad absoluta. De hecho, Backbone.js pretende ser bastante agnóstico acerca de muchos de los patrones más comunes del lado del cliente.
De localtodos a TodoMVC-Backbone
Así que he dejado de banda la aplicación localtodos de Jerôme Gravel-Niquet y me he pasado a la versión realizada por Addy Osmani y Sindre Sorhus como parte de su proyecto TodoMVC. En este proyecto realizan versiones de la aplicación original de Jerôme en diferentes frameworks Javascript, de manera que cualquier programador pueda comparar diversas implementaciones de la misma aplicación.En mi caso, más que para comparar con otros frameworks, me ha servido para acceder a una versión que ha sido modificada con el objetivo de ser comparada con otras parecidas. Éso significa que se han pulido algunos detalles y que se han clarificado muchas cosas...
Eso me ayuda a mi, como novato, porque me resulta más fácil aprender con la aplicación.
Desde el momento en el que decidí revisar el código de TodoMVC-Backbone tenía claro que quería ir documentar mis observaciones.
Probando un "Sistema Personal de Documentación"
De paso quería aprovechar para experimentar de nuevo con un sistema de documentación personal. En el pasado había utilizado un wiki (http://www.wikiserver.org/) fuertemente personalizado para mantener la documentación de diversos proyectos, tanto personales como profesionales.Pero como durante un tiempo me pasé a Linux, el wiki dejó de funcionar (es una aplicación sólo para Windows).
Tuve una época de "guardarlo todo en la nube", pero cada vez más tiendo a buscar soluciones que no sólo sean multiplataforma (soy un culo inquieto, en ese sentido), sino que sean híbridas. Y con híbridas quiero decir que tengan la cabeza en las nubes pero mantenga los pies en el suelo, esto es, en mi disco duro.
Este verano he pasado mucho tiempo offline y me he dado cuenta de que las aplicaciones cloud son muy chulas cuando tienes internet todo el tiempo, pero que son una porquería cuando no tienes conexión a la red.
Eso me ha llevado a volcarme con aplicaciones como Evernote, cuando para tomar pequeñas anotaciones antes utilizaba simplenote (+ ResophNotes -escritorio- y SyncPad -en Google Chrome-).
Hacia el final de la entrada ¿Porqué las escuelas no crean sus propios libros de texto? me preguntaba porqué en las escuelas no se utilizan wikis o sistemas distribuidos para crear libros. Ponía como ejemplo el libro del propio Addy Osmani, Backbone Fundamentals. Y me di cuenta que ése sería un buen modelo a copiar, a escala personal (otro día explicaré los detalles del montaje):
git + markdown + pandoc = PDF, HTML, ePub....
Yo he venido aquí a hablar de mi libro...
Citando a Paco Umbral en su famosa intervención, he titulado el artículo con el nombre del borrador y todavía apenas he hablado de ello...
Pues bien, ha llegado el momento: quería compartir contigo el primer borrador de los apuntes -no me atrevo a llamarlo libro- con las anotaciones y explicaciones sobre el código de la aplicación TodoMVC implementada en el framework Backbone.js.
Por el momento, estos apuntes están en una fase muy temprana; apenas he comentado el fichero HTML de la aplicación. Sin embargo, la idea es publicarlo para obtener comentarios y así poder mejorarlo. De momento lo he colgado en formato PDF en mi cuenta de Box.net:
Échale un vistazo para cazar algún gazapo o sugerir alguna mejora, si quieres. Espero tus consejos en los comentarios.
Actualizaciones:
30-Sept-2012: Actualizado el documento con los comentarios sobre la colección.
04-Octubre-2012: Actualizado el documento con los comentarios sobre la vista de tarea TodoView.
20-Octubre-2012: Comentarios sobre la vista de aplicación.
28-Octubre-2012: He homogeneizado un poco el estilo del documento y he añadido los comentarios sobre la vista de aplicación... Ya sólo quedan los comentarios sobre los routers.
24-Noviembre-2012: ¡Primera versión completada! He completado la sección sobre namespacing que tenía pendiente. He eliminado las notas personales al final del texto. Queda pulir la introducción y elaborar un "resumen final", pero ¡el core del ebook ya está listo!
18-Diciembre-2012: Correciones de algunos enlaces en MarkDown con sintaxis incorrecta.
05-05-2013: Primeros pasos con Backbone.js, un nuevo intento de aprender Backbone
Comentarios
Saludos.
Fredy G.
Un saludo!
Si me permites el autobombo, quizás también te interese: Primeros pasos con Backbone.
Un saludo!
X.